using System;

namespace StudentManagement
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建学生管理器实例
            StudentManager manager = new StudentManager();
            
            Console.WriteLine("=== 学生管理系统测试 ===");
            
            // 测试1: 添加学生
            Console.WriteLine("\n1. 添加学生测试:");
            manager.AddStudent(new Student("001", "张三", 20));
            manager.AddStudent(new Student("002", "李四", 22));
            manager.AddStudent(new Student("003", "王五", 19));
            
            // 测试添加重复学号的学生
            manager.AddStudent(new Student("001", "重复学号", 21));
            
            // 测试2: 查询学生
            Console.WriteLine("\n2. 查询学生测试:");
            Student student = manager.FindStudentById("002");
            if (student != null)
            {
                Console.WriteLine("查询结果: " + student);
            }
            
            // 测试查询不存在的学生
            student = manager.FindStudentById("999");
            if (student == null)
            {
                Console.WriteLine("学号为999的学生不存在");
            }
            
            // 测试3: 遍历所有学生
            Console.WriteLine("\n3. 遍历所有学生测试:");
            manager.DisplayAllStudents();
            
            // 测试4: 修改学生
            Console.WriteLine("\n4. 修改学生测试:");
            manager.UpdateStudent("002", "李四更新", 23);
            
            // 测试修改不存在的学生
            manager.UpdateStudent("999", "不存在的学生", 20);
            
            // 再次遍历查看修改结果
            Console.WriteLine("\n修改后的学生列表:");
            manager.DisplayAllStudents();
            
            // 测试5: 删除学生
            Console.WriteLine("\n5. 删除学生测试:");
            manager.RemoveStudent("003");
            
            // 测试删除不存在的学生
            manager.RemoveStudent("888");
            
            // 再次遍历查看删除结果
            Console.WriteLine("\n删除后的学生列表:");
            manager.DisplayAllStudents();
            
            Console.WriteLine("\n=== 测试完成 ===");
            Console.WriteLine("按任意键退出...");
            Console.ReadKey();
        }
    }
}